//写一个宏，可以将一个整数的二进制位的奇数位和偶数位交换
//0101 0101 0101 0101 0101 0101 0101 0101
//5		5	  5	   5   5   5    5    5		0x
//1010 1010 1010 1010 1010 1010 1010 1010
//a    a    a    a    a    a    a    a      0x
//					0 0 0 0 0 0 1 0
//奇数（左移）		0   0   0   0
//偶数（右移）		  0   0   0   1  
//                  0 0 0 0 0 0 0 1
//num&(0x55555555)<<1	奇数位
//num&(0xaaaaaaaa)>>1	偶数位
//#define Swap(num) ((num)&(0x55555555)<<1)|((num)&(0xaaaaaaaa)>>1)
#define Swap(num) (((num)&(0x55555555))<<1)|(((num)&(0xaaaaaaaa))>>1)
#include<stdio.h>
int main()
{
	printf("%d\n",Swap(2));
	return 0;
}